Better deserialization and serialization performance#3608
Merged
nohwnd merged 15 commits intomicrosoft:mainfrom May 2, 2022
Merged
Better deserialization and serialization performance#3608nohwnd merged 15 commits intomicrosoft:mainfrom
nohwnd merged 15 commits intomicrosoft:mainfrom
Conversation
| try | ||
| { | ||
| // {"Version":6,"MessageType":"TestExecution.GetTestRunnerProcessStartInfoForRunAll","Payload":{ | ||
| if (rawMessage[2] != 'V') |
Contributor
There was a problem hiding this comment.
out of range check for malformed?
Member
Author
There was a problem hiding this comment.
Yeah good idea. Would you check just for length 3, or for minimal size of what we consider valid message? Or probably does not make a difference?
Member
There was a problem hiding this comment.
If you only check for size 3 you will need to do a similar check for 10 and 11 later on so I would check at least this size.
Member
Author
There was a problem hiding this comment.
I am checking for minimal valid message size.
Evangelink
reviewed
Apr 26, 2022
src/Microsoft.TestPlatform.CommunicationUtilities/JsonDataSerializer.cs
Outdated
Show resolved
Hide resolved
src/Microsoft.TestPlatform.CommunicationUtilities/JsonDataSerializer.cs
Outdated
Show resolved
Hide resolved
src/Microsoft.TestPlatform.CommunicationUtilities/JsonDataSerializer.cs
Outdated
Show resolved
Hide resolved
src/Microsoft.TestPlatform.CommunicationUtilities/JsonDataSerializer.cs
Outdated
Show resolved
Hide resolved
src/Microsoft.TestPlatform.CommunicationUtilities/JsonDataSerializer.cs
Outdated
Show resolved
Hide resolved
src/Microsoft.TestPlatform.CommunicationUtilities/JsonDataSerializer.cs
Outdated
Show resolved
Hide resolved
| try | ||
| { | ||
| // {"Version":6,"MessageType":"TestExecution.GetTestRunnerProcessStartInfoForRunAll","Payload":{ | ||
| if (rawMessage[2] != 'V') |
Member
There was a problem hiding this comment.
If you only check for size 3 you will need to do a similar check for 10 and 11 later on so I would check at least this size.
src/Microsoft.TestPlatform.ObjectModel/TestProperty/CustomKeyValueConverter.cs
Outdated
Show resolved
Hide resolved
src/Microsoft.TestPlatform.ObjectModel/TestProperty/CustomKeyValueConverter.cs
Outdated
Show resolved
Hide resolved
Evangelink
approved these changes
Apr 26, 2022
MarcoRossignoli
approved these changes
Apr 26, 2022
raghavthind2005
approved these changes
Apr 30, 2022
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Improve performance of deserialization and serialization.
For serialization we save a lot of time by not serializing into JToken and then to string.
And for deserialization the biggest impact is coming from not deserializing payloads into JTokens, and not deserializing them every time we inspect the header of the message.